<?php
class UsersController extends AppController {
    public $helpers = array('Html', 'Form');
    public $uses = array('User', 'Estagio', 'Feed');

    public function index() {

    }

    public function ver($id = null) {
        $this->User->id = $id;
        if (!$this->User->exists()) {
            throw new NotFoundException(__('Usuário inválido'));
        }
        $this->set('user', $this->User->read(null, $id));
    }

    public function adicionar() {
        if ($this->request->is('post')) {
            $this->User->create();
            $this->Feed->create();
            $usuario = $this->User->find('all',  array('conditions' => array('id' => $this->Session->read('Auth.User.id')))); 
            // $this->request->data['Feed']['feed'] = $usuario[0]['User']['nome'] . " atualizou um relatório.";
            $this->request->data['Feed']['data'] = date('Y-m-d H:i:s');
            // $this->request->data['Feed']['id_user'] = $usuario[0]['User']['id'];
            if ($this->User->save($this->request->data['User'])) {
                $this->Feed->save($this->request->data['Feed']);
                $this->Session->setFlash(__('Usuário cadastrado com sucesso.'));
                $this->redirect(array('action' => 'adicionar_estagio'));
            } else {
                $this->Session->setFlash(__('Não foi possível cadastrar o usuário. Tente novamente.'));
            }
        }
    }

    public function adicionar_estagio() {
        if ($this->request->is('post')) {
            $this->User->create();
            $this->Feed->create();
            $usuario = $this->User->find('all',  array('conditions' => array('id' => $this->Session->read('Auth.User.id')))); 
            $this->request->data['Feed']['feed'] = $usuario[0]['User']['nome'] . " atualizou um relatório.";
            $this->request->data['Feed']['data'] = date('Y-m-d H:i:s');
            $this->request->data['Feed']['id_user'] = $usuario[0]['User']['id'];
            if ($this->User->save($this->request->data['User'])) {
                $this->Feed->save($this->request->data['Feed']);
                $this->Session->setFlash(__('Estágio cadastrado com sucesso.'));
                $this->redirect(array('action' => 'login'));
            } else {
                $this->Session->setFlash(__('Não foi possível cadastrar o usuário. Tente novamente.'));
            }
        }   
    }

    public function editar($id = null) {
        $this->User->id = $id;
        if (!$this->User->exists()) {
            throw new NotFoundException(__('Usuário inválido'));
        }
        if ($this->request->is('post') || $this->request->is('put')) {
            $this->Feed->create();
            $usuario = $this->User->find('all',  array('conditions' => array('id' => $this->Session->read('Auth.User.id')))); 
            $this->request->data['Feed']['feed'] = $usuario[0]['User']['nome'] . " atualizou um relatório.";
            $this->request->data['Feed']['data'] = date('Y-m-d H:i:s');
            $this->request->data['Feed']['id_user'] = $usuario[0]['User']['id'];
            if ($this->User->save($this->request->data['User'])) {
                $this->Feed->save($this->request->data['Feed']);
                $this->Session->setFlash(__('Usuário atualizado com sucesso.'));
                $this->redirect(array('action' => 'index'));
            } else {
                $this->Session->setFlash(__('Não foi possível atualizar o usuário. Tente novamente.'));
            }
        } else {
            $this->request->data = $this->User->read(null, $id);
            unset($this->request->data['User']['password']);
        }
    }

    public function deletar($id = null) {
        if (!$this->request->is('post')) {
            throw new MethodNotAllowedException();
        }
        $this->User->id = $id;
        if (!$this->User->exists()) {
            throw new NotFoundException(__('Usuário inválido.'));
        }
        if ($this->User->delete()) {
            $this->Session->setFlash(__('Usuário deletado.'));
            $this->redirect(array('action' => 'index'));
        }
        $this->Session->setFlash(__('Não foi possível deletar o usuário.'));
        $this->redirect(array('action' => 'index'));
    }

    public function beforeFilter() {
        parent::beforeFilter();
        $this->Auth->allow('adicionar', 'adicionar_estagio'); // Letting users register themselves
    }

    public function isAuthorized($user) {
        parent::isAuthorized();
    }

    public function login() {
        if ($this->Auth->login()) {
            $this->redirect($this->Auth->redirect());
        } else {
            $this->Session->setFlash(__('Login ou senha inválidos, tente novamente.'));
        }
    }

    public function logout() {
        $this->redirect($this->Auth->logout());
    }

}